//parameter<T>
type P=Parameters<(x:number,y:string)=>void>
let res9:P=[66,'da']
console.log("parameter:",res9)

//returntype<T>
type R=ReturnType<()=>boolean>
let res10:R=true
console.log("returntype:",res10)


//constructorparameters
class C{
    a:string
    b:number
    constructor(a:string,b:number){
        this.a=a
        this.b=b
    }}
type CP=ConstructorParameters<typeof C>
let res11:CP=["sd",62]
console.log("constructorparameters:",res11)


//instancetype
type I=InstanceType<typeof C>
let res12:I=new C("dw",56)
console.log("instancetype:",res12)



//Uppercase‹S›
type U = Uppercase<'foo'>
let res14:U="FOO"
console.log("uppercase:",res14)

//Capitalize‹S› / Uncapitalize‹S›
type C1 = Capitalize<'foo'>
let res15:C1="Foo"
console.log("capitalize:",res15)